草庐IT

leetcode 2744

全部标签

leetcode 452. Minimum Number of Arrows to Burst Balloons 用最少数量的箭引爆气球(中等)

一、题目大意标签:贪心https://leetcode.cn/problems/minimum-number-of-arrows-to-burst-balloons有一些球形气球贴在一堵用XY平面表示的墙面上。墙面上的气球记录在整数数组 points ,其中points[i]=[xstart,xend] 表示水平直径在 xstart 和 xend之间的气球。你不知道气球的确切y坐标。一支弓箭可以沿着x轴从不同点完全垂直地射出。在坐标x处射出一支箭,若有一个气球的直径的开始和结束坐标为xstart,xend,且满足 xstart ≤x≤xend,则该气球会被引爆 。可以射出的弓箭的数量没有限制。

LeetCode - 整数反转

题目信息源地址:整数反转给你一个32位的有符号整数x,返回将x中的数字部分反转后的结果。如果反转后整数超过32位的有符号整数的范围[−2^31, 2^31 −1],就返回0。假设环境不允许存储64位整数(有符号或无符号)。提示信息示例1输入:x=123输出:321示例2输入:x=-123输出:-321示例3输入:x=120输出:21示例4输入:x=0输出:0提示-2^31实现逻辑投机取巧假设这道题目没有环境不允许存储64位整数(有符号或无符号)的限制,其实问题很容易解决,只需要将数字转换成正整数,然后从个位开始反转,最后再根据原始整数的符号来设定结果整数的符号。这种方法的缺陷就是,当数字较大时

LeetCode - 寻找两个正序数组的中位数

题目信息源地址:寻找两个正序数组的中位数给定两个大小分别为m和n的正序(从小到大)数组nums1和nums2。请你找出并返回这两个正序数组的中位数。算法的时间复杂度应该为\(O(log(m+n))\)。提示信息示例1输入:nums1=[1,3],nums2=[2]输出:2.00000解释:合并数组=[1,2,3],中位数2示例2输入:nums1=[1,2],nums2=[3,4]输出:2.50000解释:合并数组=[1,2,3,4],中位数(2+3)/2=2.5提示nums1.length==mnums2.length==n001-10^6实现逻辑归并法最先想到的解题方法就是,将两个有序数组合

LeetCode - 寻找两个正序数组的中位数

题目信息源地址:寻找两个正序数组的中位数给定两个大小分别为m和n的正序(从小到大)数组nums1和nums2。请你找出并返回这两个正序数组的中位数。算法的时间复杂度应该为\(O(log(m+n))\)。提示信息示例1输入:nums1=[1,3],nums2=[2]输出:2.00000解释:合并数组=[1,2,3],中位数2示例2输入:nums1=[1,2],nums2=[3,4]输出:2.50000解释:合并数组=[1,2,3,4],中位数(2+3)/2=2.5提示nums1.length==mnums2.length==n001-10^6实现逻辑归并法最先想到的解题方法就是,将两个有序数组合

LeetCode算法训练-回溯 491.递增子序列 46.全排列 47.全排列 II

欢迎关注个人公众号:爱喝可可牛奶LeetCode算法训练-回溯491.递增子序列46.全排列47.全排列IILeetCode491.递增子序列分析找出并返回所有数组中不同的递增子序列绝对不能先升序绝对不能先升序绝对不能先升序这样会改变原有数组的结构子序列中元素在数组中不一定相邻只要叶子节点,也就是path,一满足条件,直接加入res注意去重used[]数组只针对当前节点的后序节点要在回溯函数中定义画回溯树一看便知代码classSolution{privateLinkedListpath=newLinkedList();privateList>res=newArrayList();publicL

LeetCode算法训练-回溯 491.递增子序列 46.全排列 47.全排列 II

欢迎关注个人公众号:爱喝可可牛奶LeetCode算法训练-回溯491.递增子序列46.全排列47.全排列IILeetCode491.递增子序列分析找出并返回所有数组中不同的递增子序列绝对不能先升序绝对不能先升序绝对不能先升序这样会改变原有数组的结构子序列中元素在数组中不一定相邻只要叶子节点,也就是path,一满足条件,直接加入res注意去重used[]数组只针对当前节点的后序节点要在回溯函数中定义画回溯树一看便知代码classSolution{privateLinkedListpath=newLinkedList();privateList>res=newArrayList();publicL

leetcode 605. Can Place Flowers 种花问题 (简单)

一、题目大意标签:贪心https://leetcode.cn/problems/can-place-flowers假设有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。给你一个整数数组  flowerbed表示花坛,由若干0和1组成,其中0表示没种植花,1表示种植了花。另有一个数 n,能否在不打破种植规则的情况下种入 n 朵花?能则返回true,不能则返回false。示例1:输入:flowerbed=[1,0,0,0,1],n=1输出:true示例2:输入:flowerbed=[1,0,0,0,1],n=2输出:false提示:

LeetCode - 两数相加

题目信息源地址:两数相加给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字0之外,这两个数都不会以0开头。提示信息示例1输入:l1=[2,4,3],l2=[5,6,4]输出:[7,0,8]解释:342+465=807示例2输入:l1=[0],l2=[0]输出:[0]示例3输入:l1=[9,9,9,9,9,9,9],l2=[9,9,9,9]输出:[8,9,9,9,0,0,0,1]提示每个链表中的节点数在范围[1,100]内0题目数据保证列表表示的数字不含前导零实现逻辑结

leetcode 435. Non-overlapping Intervals 无重叠区间(中等)

一、题目大意标签:贪心https://leetcode.cn/problems/non-overlapping-intervals给定一个区间的集合 intervals ,其中intervals[i]=[starti,endi] 。返回需要移除区间的最小数量,使剩余区间互不重叠 。示例1:输入:intervals=[[1,2],[2,3],[3,4],[1,3]]输出:1解释:移除[1,3]后,剩下的区间没有重叠。示例2:输入:intervals=[[1,2],[1,2],[1,2]]输出:2解释:你需要移除两个[1,2]来使剩下的区间没有重叠。示例3:输入:intervals=[[1,2],

leetcode 605. Can Place Flowers 种花问题 (简单)

一、题目大意标签:贪心https://leetcode.cn/problems/can-place-flowers假设有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。给你一个整数数组  flowerbed表示花坛,由若干0和1组成,其中0表示没种植花,1表示种植了花。另有一个数 n,能否在不打破种植规则的情况下种入 n 朵花?能则返回true,不能则返回false。示例1:输入:flowerbed=[1,0,0,0,1],n=1输出:true示例2:输入:flowerbed=[1,0,0,0,1],n=2输出:false提示: